home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload Trio 2
/
Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO
/
dir34
/
xdisk360.zip
/
XDISK.DOC
< prev
next >
Wrap
Text File
|
1995-02-15
|
59KB
|
1,255 lines
╒═══════════════════════════════════════════╕
│ xDISK │
│ Release 3.60.0 │
│ │
│ (C) Copyright 1989-1993 FM de Monasterio │
│ All Rights Reserved │
│ Licensed Material │
╘═══════════════════════════════════════════╛
CONTENTS
1. SUMMARY
2. REGISTRATION
3. GENERAL INFORMATION
4. INSTALLATION & USAGE
a. Installing the driver via CONFIG.SYS
b. Installing from the DOS command line
c. Modifying the driver after installation
Command-line switches
Command-line comments
d. Status/Usage/Help panels
5. BASIC TECHNICAL INFORMATION
a. DOS Errorlevels
b. Disk internals
c. RAM-Disk identification & DOS version
d. Self-installation in upper memory
e. xDISK communication interface
6. COPYRIGHT & LICENSE
U.S. Government information
Upgrades
Limitations
Technical support
1. SUMMARY
-----------
xDISK is a versatile EMS-based, RAM-disk whose size can be modified without
having to reboot the machine. Sector size, cluster size, and root directory
size can be changed as well. The disk can provide visual and audio clues of
its activity.
xDISK generates the disks in expanded memory conforming to the Lotus/Intel/
Microsoft (LIM) specification 4.0 (EMS). xDISK can be collapsed to free its
EMS for other uses, and can be expanded to use all of the available EMS, or
any intermediate size multiple of 16 kilobytes (KB). xDISK does not use the
EMS page frame, thus avoiding the need to dedicate 64 KB of memory for this
frame.
Two kinds of on-the-fly resizable xDISKs can be created: "Inelastic," which
maximizes disk space, but whose data contents are not preserved if the disk
is resized; and "elastic," which permits data-preserving and non-preserving
disk resizing.
Security features include: RAM-disk write protecting and format protecting,
locking/unlocking DOS access to the disk, and the enforcing of user-defined
password checks before the implementation of any command to the disk.
Loading features include selfinstallation of the xDISK device driver in the
upper memory area, with or without MS-DOS 5+, if an extended memory manager
supporting the XMS 2+ is present, and the capability of loading this driver
from the DOS command line (MS-DOS and PC-DOS versions 3.0 through 6.0).
Minimum xDISK requirements are MS-DOS version 3.0 or later (or a compatible
operating system), expanded memory conforming to the LIM EMS 4.0, and 1,500
bytes of conventional (or upper memory) per drive to be installed. xDISK is
available in 086, 286, 386, and 486 microprocessor-type optimized versions.
2. REGISTRATION
----------------
This software is user-supported; the present release, although lacking the
options marked by asterisks, is a fully usable program. You may test this
release for (in)compatibilities with your system, but after the testing is
completed you are requested to order a registered copy of the full release
of the software from the address at the end of this documentation.
See the final part of this documentation for information on the Licensing,
Distribution, Warranty, and Limitation of Remedies of the software.
--------------------------------------------------------------------
XDISK.REG contains a form needed to register or upgrade the software
--------------------------------------------------------------------
If you would rather use this unregistered copy, consider making a donation
to the Children's Hospital of Washington DC, for indigent children in need
of medical care. Every year in the USA, infant mortality claims the lives
of tens of thousands of children before their first year of life, and most
of them come from families below poverty level... Please send to the same
address a check payable to the "PATIENT CARE FUND, CHILDREN'S HOSPITAL" on
the obverse, and marked "For Deposit Only" on the reverse. Donations will
be sent to Children's Hospital. Please identify the program for which you
are making the donation.
3. GENERAL INFORMATION
-----------------------
xDISK is a virtual-device driver system to generate (and modify) RAM-disks in
expanded memory conforming to LIM specification version 4 or higher. The disk
parameters can be modified without having to reboot the machine.
A a data-safe resizing can be obtained with some command switches. Data-safe
resizing is available if the RAM-disk has been installed as an "elastic" unit
(the default condition). xDISK can also be installed as an "inelastic" unit,
which can be resized on-the-fly as well, but whose resizing destroys the disk
contents; "inelastic" disks maximize the usage of EMS disk space.
This system consists of two programs: (1) XDISK.SYS, a block device driver to
be installed via CONFIG.SYS, after an EMS manager has been installed, and (2)
XDISK.EXE, a utility providing an interface with the driver via DOS to permit
changing of one or more parameters of the specified RAM-disk.
Warning -----------------------------------------------------------------
Due to an error in the LH (LOADHIGH) command of MS-DOS and PC-DOS
5.00 and MS-DOS 6.00, XDISK.EXE does not select the correct drive
if loaded via this command in either upper or lower memory. (The
LH command is not needed for the execution of the drive interface
utility.)
-----------------------------------------------------------------
The XDISK.SYS and XDISK.EXE files of a given version are matched and will not
work with those of other xDISK versions. The minimum requirements are an EMS-
4.0 manager, and MS-DOS version 3 or later. Some xDISK options require MS-DOS
3.1+ version or later (see below).
Since xDISK does not require an EMS page frame (i.e., a large region of upper
memory where the EMS 'pages' are normally posted), 64 KB can be recovered for
upper-memory use if frame-dependent EMS utilities are not used. EMS services
without a page frame are supported by most 386-specific memory managers, such
EMM386.EXE (use switch FRAME=NONE in MS-DOS 5 and 6 version), 386MAX.SYS (use
switch NOFRAME), QEMM386.SYS (use switches FR=NONE FEMS), etc.
xDISK RAM-disks are compatible with the CHKDSK utility of DOS as well as with
other programs that sometimes encounter difficulties with other resizable RAM
disks. Starting with xDISK version 3.32, the boot sector of the disk complies
fully with the MS-DOS version 5 and 6 format.
CPU versions
The program is written in assembly language; each version consists of four
processor-type releases (086, 268, 386 and 486) in which the code has been
optimized for the CPU types of the Intel iAPX processor family (x86). This
is needed because such processors differ markedly in instruction execution
time. Incorporation of a memory cache in some x86 processors also affects
this time by influencing the speed of both instruction fetching and memory
access. The 486 release should be used with 586 CPU (Pentium) machines.
In addition to standard (086) assembly language instructions, the 286, 386
and 486 releases of the program also use 286-, 386- or 486-specific opcode
instructions in 'real' mode (which is the native mode for 086 processors).
The type and degree of code optimization vary with the CPU type, and yield
usually small variations of the size of the resident code. These releases
can be used in machines having the corresponding or higher CPU type.
4. INSTALLATION & USAGE
------------------------
The utility INSTALL.EXE, enclosed with the program files, may be used to copy
these files to a user-defined drive and directory, and--if so desired--to add
a command to the file CONFIG.SYS which will install the driver XDISK.SYS upon
rebooting, and to add the user-defined directory to the PATH statement in the
AUTOEXEC.BAT file.
The following sections describe the manual installation of the xDISK driver.
A. Installing via CONFIG.SYS
XDISK.SYS may be installed via the CONFIG.SYS file on the boot disk after the
LIM-3+ EMS manager has been installed. The filename of the EMS driver varies
with the manufacturer, but its code must include the string 'EMMXXXX0,' whose
presence can be verified with a file-browsing utility.
The following command must be included in the file CONFIG.SYS:
DEVICE=[path]XDISK.SYS [?n] [/DB/DR/DS/KB/LH/PK/VD/VM] [;comment]
where <path>, if given, is the path specification (including drive) for XDISK
.SYS; if <path> is not specified, the driver file is assumed to be located in
the root directory of the booting drive.
Comments preceded by a semicolon in the DEVICE= line specification, which may
be useful in annotating CONFIG.SYS commands, are ignored during installation.
A description of the switches (/DB, /DR, etc) is provided below. The default
value for switch /DB, /DR, or /DS is used if the switch (or its corresponding
parameter) is not specified.
The SIZE parameter needs not be specified if using the DEVICEHIGH (MS-DOS 5+)
or the HIDEVICE (DR-DOS 6) command to install the driver in the upper memory.
Installation avoidance
In registered copies of xDISK, driver installation can be avoided by pressing
the <Esc> key before the installation banner is displayed. Pressing this key
interrupts the installation, and the user is prompted as to whether the drive
is to be installed:
xDISK: Continue loading RAM-disk as drive X:? [Yn]
Press <Y> or <Enter> to continue or <N> to cancel. Avoiding the installation
produces no memory penalty under DOS version 3.30 or higher but uses some 256
bytes of conventional memory in earlier DOS versions.
B. Installing from the DOS command line
Alternatively, the driver may also be loaded from the command line at the DOS
prompt (that is, after the system has been booted and configured via the file
CONFIG.SYS) by means of the associated utility XDISK.EXE. Command-line is not
yet imlpemented under DR-DOS version 5+.
Assuming XDISK.EXE is in the DOS path, the following command must be used for
the command-line loading of the driver:
XDISK /LX=[path]XDISK.SYS [/switches]
or
XDISK /LX:[path]XDISK.SYS [/switches]
where <path>, if given, is the directory path specification (including drive)
for the XDISK.SYS file; if <path> is not specified, the file is assumed to be
located in the current directory. The use of a colon or equal sign after /LX
is mandatory. (See below for the description of the command switches.)
xDISK drives loaded from the DOS prompt can be uninstalled via XDISK.EXE (see
switch /UX below). The maximum number of drives allowed by MS-DOS, including
floopy, hard, and RAM-disks, is 26 (A: through Z:).
C. Modifying the xDISK driver
After the xDISK driver has been installed, XDISK.EXE can be used to interface
with the driver. This utility allows for the modification of disk parameters
from the DOS command line:
XDISK [?] [d: [/switches]] [;comments]
? If xDISK is executed with <?> as the only argument (notice the absence of
a preceding backslash), the program searches all block device drivers for
the xDISK driver signature, and displays a list of the installed drivers.
d This is the drive designator letter, followed by <:>, that identifies the
xDISK drive. The specification of a non-xDISK drive or of a non-existing
drive generates separate error messages. Defaults: Null drive, no colon,
or x=<ASCII code 21-40> = Current drive unit letter.
The two other components of the command line are discussed below:
SWITCHES
--------
Switches are optional commands, passed to the driver to modify its operation,
which are added to the command line invoking the xDISK driver (at the time of
installation) or its XDISK.EXE interface utility.
The switches are not case sensitive, but must be preceded by a backslash [/].
If xDISK is invoked without any switch (or when the switches are not preceded
by slashes, and thus are ignored), the status of the xDISK drive is displayed
at the DOS command line.
The contents of the RAM-disk are destroyed by the switches /DB, /DR, /DS, /DC
and /DE, which reformat the disk. The contents are preserved by the switches
/DX+ and /DX-, which resize the disk without reformatting.
Only the following switches are recognized when loading the driver:
/DB, /DR, /DS, /DU, /KB, /LH, /PK, /VD, and /VM
All switches are recognized after installation of the driver, except for /DU,
/KB, /LH, /PK, and /VM.
------------------------------------------------------------------------
(*) Asterisks mark options available in the registered program copy only
------------------------------------------------------------------------
SWITCH ?
1. XDISK.SYS:
If <?[n]> immediately follows the blank space terminating the driver name
in the DEVICE= line specification, the user is prompted as to whether the
corresponding RAM-disk is to be installed. If <n> is missing or is not a
digit between 1 and 9, such prompt defaults to a YES answer in 5 seconds.
The prompt time-out value is provided by <n> if between the range 1 to 9;
the driver is forced to wait for an answer if n=0.
2. XDISK.EXE:
This switch displays the Status/Usage/Help panels, which are described in
more detail in the section below. If a VGA or EGA is the active adapter,
the program saves the contents of the palette registers prior to changing
the video attributes for its various displays.
Preceded by a valid xDISK drive unit letter, <?> or </?> display the disk
status at the DOS prompt (/?) or at the xDISK Usage/Help panel (?).
In the absence of a drive designator, <?> displays the list of the loaded
xDISK RAM-disks, and </?> displays either the status of the default drive
(if an xDISK one) or the list of installed disks (if the default drive is
not an xDISK drive).
See section Status/Usage/Help Panels below.
* SWITCH CS[n]
Selects cluster size, i.e., DOS allocation units, where <n> can be 1, 2,
4, 8, 16, or 32 sectors/cluster; the final size may be adjusted by xDISK
to a higher value, especially if dealing with a large disk. The smaller
the size the lesser the chance to degrade the compactness of the packing
of files in the disk (which affects switch /DX; see below).
Defaults: /CS = /CS1.
* SWITCH DA[±]
Selects whether changes in the disk parameters are implemented via calls
to DOS (/DA+) or directly to the driver (/DA-). If an on-the-fly, data-
compression utility is being used to increase disk capacity, which would
normally take over DOS calls to xDISK, do not resize the disk via direct
calls to the driver (/DA-) since this will damage such a utility.
Defaults: /DA = /DA+.
SWITCH DB[n][!]
Selects disk size, in which <n> is between 16 and 32768 KB in steps of 16
KB. If <n> is not a 16-KB multiple, the size is increased to the nearest
larger multiple available. The largest RAM-disk size supported is 32 MB.
Unless switch /ND or /NQ is selected as well, disk resizing by switch /DB
requires confirmation by the user, since the disk is reformatted, and its
contents are thus destroyed.
Switch /DB[n] installs an "elastic" disk that, under many conditions, can
expand or shrink via switch /DX± (see below) preserving the contents. In
contrast, switch /DB[n]! installs an "inelastic" disk that allows maximal
utilization of the EMS but disables data-safe expansion or shrinkage; use
/DB[n]! if loading a RAM-disk that will not need resizing.
Defaults: In CONFIG.SYS, null switch or null <n> = /DB64. In the command
line of DOS, /DB = /DB64; null switch is ignored.
* SWITCH DC
Switch /DC collapses the RAM-disk to a size of 0 KB and releases all the
EMS pages previosuly allocated to the disk. Unless switch /ND or /NQ is
also selected, disk collapse requires user confirmation; switch /DC does
not change the existing /DR and /DS values.
If disk collapse has occurred for, say, disk J, DOS-mediated requests to
the drive, e.g. <CHKDSK J:> or <DIR J:>, will trigger the folowing error
message from MS-DOS 5+:
Invalid disk change reading drive J
Please insert volume xDISK∙360 serial 3600-0010
Abort, Retry, Fail?
The serial number specifies the xDISK version (3.60.0) and the disk unit
number (A=1, B=2, C=3... J=10) in a binary-packed decimal number format.
Respond to the "Abort, Retry, Fail?" question by pressing the <A> key to
return to the DOS prompt. This message is a remainder that the disk does
exist, but it is collapsed. Such a disk can only be restored via switch
/DB or /DE since reformatting is needed; the data-preserving switch /DX+
is not accepted if the disk is collapsed.
Do not change drive to a collapsed RAM-disk as DOS will repeat the above
prompt until key <F> is pressed. Disks failed by DOS generate different
error messages to CHKDSK. A valid drive status is restored once the RAM
disk is expanded via switch /DB or /DE. See switch /TL for invalidating
and revalidating disk access.
No defaults.
* SWITCH DE[!]
Expands disk size to the maximum available EMS. The maximum number root
entries is changed to 512, unless switch /DR[n] is specified afterwards.
Unless switch /ND or /NQ is also specified, this expansion requires user
confirmation.
Switch /DE loads an "elastic" disk which can expand or shrink via switch
/DX± (see below), while preserving its contents during such resizing. In
contrast, switch /DE! loads an "inelastic" disk whose contents cannot be
preserved during resizing, but allows maximal EMS utilization. Use /DE!
to create a RAM-disk that will not need resizing.
No defaults.
SWITCH DR[n]
Number of root directory entries (files and subdirectories) where <n> is
between 4 and 512. (The final number of root entries may be adjusted by
xDISK to a higher or lower value, especially when loading a small disk.)
Unless switch /ND or /NQ is also selected, this resizing change requires
confirmation by the user.
Each root directory entry uses 32 bytes from the allocated disk size.
Warning -----------------------------------------------------------
If there is not a sufficient number of entries, commands to
write to the disk trigger a critical error message of 'File
Creation Error.' To decrease such a possibility, expanding
the disk to the maximum EMS size via switch /DE changes the
root directory entries to 512. If less entries are needed,
follow switch /DE with /DRn, where n < 512.
-----------------------------------------------------------
Defaults: In CONFIG.SYS, null switch or null <n> = /DR64. In the command
line of DOS, /DR = /DR64; null switch is ignored.
SWITCH DS[n]
Sector size, where <n> is 128, 256 or 512 bytes. The standard DOS sector
is 512 bytes; use a smaller size when storing small files. Unless switch
/ND or /NQ is also selected, the resizing change requires confirmation by
the user.
Defaults: In CONFIG.SYS, null switch or null <n> = /DS512. In the command
line of DOS, /DS = /DS512; null switch is ignored.
* SWITCH DX[±][n]
Permits the limited shrinkage [-] and expansion [+] of the RAM-disk while
preserving the integrity of its contents. Resizing is NOT implemented if
the resulting drive parameters would threaten the disk contents (see Disk
Internals below).
Switch /DX- shrinks the free space of the disk to zero or to less than 16
KB. Alternatively, /DX-n shrinks the disk by <n> KB or the nearest 16-KB
multiple. Shrinkage is not implemented if free space is less than 16 KB,
as this would not free an EMS page (16 KB each). The data-safe shrinkage
is available only under MS-DOS 3.10 or later version. Shrinking an empty
disk yields a minimum size of 16 KB or more (depending on the other drive
parameters), i.e., /DX- does not collapse the disk.
Warning --------------------------------------------------------------
Switch /DX- uses an undocumented function supported in version
3.1 to 6.0 of MS-DOS; this function is also supported in other
OEM releases of MS-DOS, such as PC-DOS, COMPAQ DOS, etc. There
is no assurance, however, that such a function is supported in
systems other than MS-DOS, or that it will remain available in
future MS-DOS versions or revisions.
--------------------------------------------------------------
The amount of shrinkage is computed from the value, maintained by MS-DOS,
of the first cluster from which it starts the search for free space prior
disk write operations (such a value is displayed on the Status panel, see
Status/Usage/Help Panels below). DOS normally uses all of the previously
unused free space before reusing freed space. Contents must be compacted
(i.e. there should be no free gaps between used clusters) for proper disk
shrinkage. Switch /DX- compares the calculated kilobytes needed to resize
the disk with the amount occupied by the data. If the former are smaller
than the latter, free gaps are assumed (i.e. the free-space cluster value
does not indicate the last cluster in use) and shrinkage is cancelled.
Note -------------------------------------------------------------------
To compact an "elastic" disk, use only a defragmenting utility that
provides a full optimization, i.e., it does not leave free clusters
interspersed among used clusters, such as the DEFRAG.EXE utility of
MS-DOS 6. (Do not use a defragmenting utility that places a hidden
data file in the last disk cluster, as this may interfere with disk
shrinkage.)
-------------------------------------------------------------------
Switch /DX+ expands total disk size to twice its formatted size, provided
that the resulting drive parameters do not threaten the integrity of disk
contents. Alternatively, switch /DX+n expands the disk by <n> KB, or the
nearest higher 16-KB multiple.
A disk shrunk via /DX- can be restored to its original (or a larger) size
via switch /DX+ or /DX+n, and vice versa. A RAM-disk created with switch
/DE! or /DB[n]! (fixed size) cannot be resized with switch /DX±.
Defaults: /DX = /DX+.
SWITCH DUd
Assigns a tentative drive unit code to the disk to be installed, in which
the unit code <d> can be a letter between "A" and "Z." Normally, DOS 3+,
which is required to install xDISK, assigns such an unit code to the disk
at the time of installation, overwritting any user-assigned code. Switch
/DU is available for troubleshooting purposes and is ignored after driver
installation.
No defaults.
* SWITCH KB
Skips displaying the installation banner when loading the driver; switch
/KB is ignored after installation.
No defaults.
* SWITCH LH[n]
Selects installation of the xDISK driver in the upper memory area (UMA),
i.e., between 640 KB and 1024 KB, which is below the 1-MB limit of 8086-
based memory but above the 640-KB hardware barrier of DOS. Self-loading
in upper memory requires an extended memory manager (XMM) supporting the
services of XMS 2+, and a free upper memory block (UMB) of a little less
than 2 KB. The XMM must support UMB functions.
The UMB allocation is implemented by calls to DOS, if this allocation is
managed by MS-DOS 5+ directly (i.e., command 'dos=umb' in CONFIG.SYS and
the drivers HIMEM.SYS and 386EMM.EXE loaded), or via direct calls to the
XMM, if MS-DOS 5+ does not control the UMB allocation.
A low high-memory limit for the UMB may optionally be specified via <n>,
a hexadecimal number between A000 (640 KB) and FFFF (1,024 KB), so as to
select or avoid specific regions of upper memory.
The self-loading into upper memory consumes 64 bytes of the conventional
memory per installed device; a few additional bytes are taken by the XMM
or MS-DOS during UMB allocation. Unlike the UMB loading mediated by some
memory managers, xDISK self-loading only requires a free UMB of the size
of the resident driver code (and not of the whole code of XDISK.SYS).
Defaults: Lower-memory installation, if a XMS/DOS error is found during
the UMB loading; high-memory installation below requested lower limit if
UMBs are not available above this limit.
Note -------------------------------------------------------------------
Due to the manner in which the DOS 5+ command 'DEVICEHIGH' modifies
the upper memory chain (if this command and the command DOS=UMB are
specified in CONFIG.SYS), self-loading into the upper memory is not
possible if 'DEVICEHIGH' were used to install another device driver
in a line preceding that of xDISK. (To install XDISK.SYS in a UMB,
specify switch /LH in a 'DEVICE' line of CONFIG.SYS, and avoid this
switch in a 'DEVICEHIGH' line.)
Under MS-DOS 5+, xDISK can selfload into the upper memory area when
'DEVICEHIGH' is used in a command line subsequent to that of xDISK.
-------------------------------------------------------------------
* SWITCH LX
Loads XDISK.SYS from the DOS command line (i.e. after the system has been
booted and the drivers installed via the CONFIG.SYS file). The full-path
specification for XDISK.SYS must be given after switch /LX along with any
switches to configure the xDISK driver, as shown above in Usage item 2.0.
An equal sign or colon must separate /LX and the path specification with-
out intervening spaces, as otherwise the loading will fail.
Switch /LX does not require a drive specification.
Previously installed xDISK disks should not be collapsed for the command-
line loading to work properly, since the loading process rebuilds the DOS
kernel. Command-line loading of the driver increases the resident size by
slightly more than 1 KB.
xDISK command-line loading is available under MS-DOS 3-6, IBM PC-DOS 3-6,
COMPAQ DOS 3-4, and other OEM releases of MS-DOS. It is not yet available
under DR-DOS version 5 and 6.
Warning --------------------------------------------------------------
The system will crash if the memory allocated to the driver is
released by means of a resident-removal utility! Command-line
loaded drivers can be identified in memory maps via the string
'xDISK_<d:>,' where <d> is the drive letter for the disk.
--------------------------------------------------------------
xDISK drives loaded from the command-line either in lower (LMB) or upper
memory (UMB) can be unloaded from memory via switch /UX (see below).
No defaults.
* SWITCH ND
Nulls the displaying of disk status, user confirmation request, and error
messages; errors can still be detected within a batch file with the ERROR
LEVEL command. Because the disk status display is generated by the driver
via BIOS calls, this message cannot be redirected by DOS (switch /ND thus
yields the same result as a redirection to the NUL device). The RAM-disk
configuration parameters are preserved.
No defaults.
SWITCH NQ
Quiet resizing. Avoids prompting for the user confirmation prior to disk
resize operations that destroy all data on the RAM-disk.
No defaults.
* SWITCH PDx
Defines passssword <x> to be checked before implementing any disk change,
where <x> consists of 1-15 unshifted, alphanumeric characters (0-9, A-Z),
which must be followed by a blank space.
The password is useful in situations when more than one user has acces to
the RAM-disk (e.g., a server) and, after copying the common-access files,
the disk is made write- and format-protected.
No defaults.
* SWITCH PK
Pauses driver installation after its banner has been displayed until any
key is pressed; switch /PK is ignored after installation.
No defaults.
* SWITCH TL[±]
Unlink (/TL-) or relink (/TL+) the drive to the chain of DOS drivers. The
unlinking turns the driver off, invalidating its use by DOS. This may be
useful for collapsed disks that cannot be unloaded from memory. Unlinked
RAM-disks can be turned on by relinking them to the DOS chain.
Defaults: /TL = /TL+.
* SWITCH TP[±]
Disables (/TP-) or enables (/TP+) password verfication before any changes
to the RAM-disk are implemented; the password consists of 1-15 unshifted,
alphanumeric characters followed by <Enter>.
Pressing <Esc> or <Break> during password testing returns the user to the
DOS command line. The typing of an incorrect character during the testing
vitiates prior accepted (correct) characters, and the entire password has
to be retyped. Note that warmbooting via <Ctrl-ALt-Del> is not suppressed
during password testing; rebooting destroys the RAM-disk data.
Defaults: /TP = /TP+.
* SWITCH TPA[±]
Provides control of the audio feedback during the password checking (see
switch TP below) prior to the implementation of any change in the drive;
/TPA+ enables a 55-ms beep each time an invalid character is entered and
/TPA- disables this feedback.
Defaults: /TPA = /TPA+.
* SWITCH TPV[±]
Provides control of the video feedback during the password checking (see
switch TP below) prior to the implementation of any change in the drive;
/TPV+ displays a <■> if a correct character is typed, and /TPV- disables
this feedback.
Defaults: /TPV = /TPV+.
* SWITCH TR[±]
Protect (/TR+) or unprotect (/TR-) the drive from resizing to prevent the
inadvertent reformatting the disk. The protection status is indicated by
the upper or lower case of the write-protection status (see switch TW) in
the xDISK configuration message: RW/RO = resize protected, rw/ro = resize
unprotected.
Defaults: /TR = /TR+.
* SWITCH TS[±]
Provides control of audio feedback during DOS access to the specified RAM
disk: Use /TS+ to enable a brief click whenever the driver receives a DOS
request to read from or write to the disk, and /TS- to disable this audio
feedback. The ON status is indicated by the icon <> in the configuration
status messages.
Defaults: /TS = /TS+.
* SWITCH TV[±]
Provides control of video feedback during DOS access to the specified RAM
disk: Use /TV+ to flash the icon <> on the top-left corner of the screen
each time the driver receives a request from DOS to read from or write to
the disk, and /TV- to disable this video feedback. The ON and OFF status
is signalled repectively by the icons <> and <∙> in the status messages.
Switch /VD allows for the selection of the character and the attribute to
be flashed by /TV+.
Defaults: /TV = /TV+.
* SWITCH TW[±]
Use /W+ or /W- to write protect (Read-Only) or unprotect (Read-Write) the
drive contents as in a floppy disk. Write-protect status does not permit
RAM-disk resizing. The status is indicated by the icons <RO> and <RW> in
the xDISK configuration status messages.
Defaults: /TW = /TW+.
* SWITCH UX
Uninstalls from memory the specified xDISK disk (only command-line loaded
drives can be uninstalled); the operating system will crash if this drive
is not the last drive in the DOS chain or if the resident code is removed
with a TSR-removal utility.
No defaults.
* SWITCH VD[c][a]
Selects the ASCII character [c] and color attribute [a] of the read/write
disk activity flash mediated by switch /TV+. Any ASCII character, except
for those with code 10 (line feed), 13 ( return), or 26 (end-of-file) can
be used for parameter <c>. The background/foreground video attribute <a>
must be specified as a hexadecimal (base 16) digit pair between 00 and FF
where the following values are recognized:
0 - black 8 - gray
1 - dim blue 9 - intense blue
2 - dim green A - intense green
3 - dim blue-green (cyan) B - intense blue-green
4 - dim red C - intense red
5 - dim blue-red (magenta) D - intense blue-red
6 - dim green-red (brown) E - intense green-red (yellow)
7 - dim white F - intense white
No defaults.
SWITCH VM
Use if installing XDISK.SYS in a virtual machine of a multitasking system
to prevent EMS losses if the virtual machine is ended.
No defaults.
COMMENTS
--------
Comments may be added in the command line after the switches. The comments,
which may be useful in annotating batch-file or CONFIG.SYS commands, must be
preceded by a semicolon, and are ignored by xDISK.
Do not use the DOS redirection and pipe characters in comments for XDISK.EXE
commands since DOS will attempt to implement the implied redirection or pipe
request.
D. Status/Usage/Help panels
Executing the program with switch /? selected allows access to the Status/
Usage and Help panels. (If a Mouse pointing device driver, compatible with
the Microsoft Mouse driver version 6.0 or higher is loaded and active, all
of the services provided by these panels can also be activated by pointing
the mouse to specific areas of the screen and clicking either button. The
mouse driver state is saved prior to the display, to be restored later, if
sufficient memory is available.)
The STATUS/USAGE panel, which is shown first, describes status information
for the resident driver and its drive if an xDISK RAM-drive designator was
specified, or a list of the installed xDISK RAM-drives if any. If a valid
drive designator was specified, the STATUS subpanel also displays used and
free kilobytes, and the value of the cluster from which DOS starts a free-
space search when writing to the disk (see SWITCH DX above).
The USAGE subpanel shows a menu for the command switches: To cycle between
the main and the auxiliary menu, press key <F2> or <M>, or click the mouse
upon the screen button labelled <Menu>. If the resident is installed, the
status of some 'on/off' command switches is displayed by '+' or '-' before
a given menu entry.
The DATA subpanel shows the current drive parameters for the specified (or
default) drive. Press key <F3> or <D>, or click the mouse upon the screen
button labelled <Data> to display the panel; press the <Esc> key, or click
the mouse upon the button labelled <Esc>, to return to the main panel. The
following example was obtained from a 82%-full RAM-disk formatted with the
switches /DB64 /DR16 /DS512 /TW+ /TR+ /TV+:
█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
█ Drive I, serial no. 3600-0009, label <xDISK I:> ┌──█
█ ╓▄└▄┐ █
█ Bytes/sector: 512 Medium ID type: F8h ║▀ ▀│ █ ═ [1]
█ Sectors/cluster: 4 DOS-CDS linked: Yes ║Esc│ █
█ No. of FAT copies: 1 EMS pages used: 5 ╚═══╛ █
█ Sectors/FAT copy: 2 Disk compacted: Yes █ ═ [2]
█ FAT entry length: 12-bit Safe expansion: +112 KB █ ═ [3]
█ Root dir entries: 16 Safe shrinkage: -0 KB █ ═ [4]
█ First root sector: 3 Write protect: Yes █
█ First user sector: 4 Resize protect: Yes █
█ Reserved sectors: 1 Drive feedback: Yes █ ═ [5]
[6] ═ █ Free disk cluster: 34 Password check: No █
[7] ═ █ I/O disk accesses: 13157 █
[8] ═ █ I/O disk failures: 0 ▐▓▓▓▓▓▓▓░░░░░░░░░░░░░▌ █
█ 0 % Root Space 100 █
█ Used ▓ █
█ ▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░▌ Free ░ █
█ 0 % Total Space 100 █
█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
NOTES:
[1] Click a mouse on this mouse icon to cancel this display if
the mouse is enabled, which is signalled by a beating <>.
[2] Indicates whether there are empty gaps in the disk packing.
[3] Number of additional KB that may be added to the disk size.
[4] Number of KB that may be set free of the current disk size.
[5] Indicates whether there is video <> and audio <> feedback
during DOS-mediated read and write access to the disk.
[6] Cluster at which MS-DOS will start searching for free space
when writing to the disk.
[7] Number of successful disk read and write requests from DOS.
[8] Number of errors during read or write requests to the disk.
The HELP panel provides a summary description of the program and commands,
and is displayed if key <F1> or <H> is pressed from the Status/Usage panel
(or if the mouse is clicked upon the screen button labelled <Help>). Press
the keypad cursor keys (Home/End, PgUp/PgDn, arrows) to scroll the display
down or up or the key <S> to scroll in a closed loop; alternatively, click
the mouse upon the Up/Down arrows at the top right corner of the screen to
scroll. Press key <F1> to skip the brief program summary and position the
text on the Usage section directly. Pressing <F1> a second time positions
the text on the Switches section directly.
A beating icon to the left of the preceding USAGE panel controls the speed
of screen scrolling of the HELP panel via key <S> or the mouse arrows. By
positioning the mouse pointer over this beating icon and clicking the left
or right mouse buttons, the rate of beating (and that of scrolling) can be
respectively increased or decreased.
Press key <Esc> or <F2>, or click the mouse upon the rightmost icon at the
top left corner of the screen, to return to the Status/Usage panel. Press
key <F7> or <X>, or click the mouse upon the leftmost icon, to exit to the
DOS-prompt command line.
If the program is waiting for keyboard (or mouse input) during the display
of the Status/Usage panel, it issues the 'idle' interrupts of DOS, INT 28h
and, if running under MS-DOS 5+, INT 2Fh, function 1680h, to allow for the
the potential background activation of other residents.
NOTE: (EGA users only) The default IBM palette attributes are restored if
the EGA BIOS fails to store properly the original data.
5. BASIC TECHNICAL INFORMATION
-------------------------------
A. DOS Errorlevels
XDISK.EXE passes execution status data to DOS. These can be tested in batch
files via the ERRORLEVEL command. The following are values for version 3.31
or later:
Value Condition
----- --------------------------------------
255 Cyclical Redundancy Check failure
254 286(386) version executed in non-286(386)+ machine
240 Error during driver unloading
238 Criticsal error opening driver
237 All drives are assigned (reached maximum)
236 All drives are assigned (increased limit)
235 Driver initialization error (command-line load)
234 Driver failed installation (command-line load)
233 Overlay of driver failed (command-line load)
232 Operating system does not support DOS function 32h
231 Failed to find NUL driver (command-line load)
230 Error during XDISK.SYS load (command-line load)
128 Unknown video card/video contents not preserved
65 Invalid EMS version
64 Invalid DOS version (1-2, 5; OS/2 DOS 10+)
36 Data loss on resize
35 Data-safe resize error
34 Format-protect resize error
33 Write-protect resize error
32 Resize request generic error
19 Evaluation period has expired
18 Open files left in disk
17 Temporary file acess error
16 Root directory full
8 Driver access eror
4 Invalid command/switch
2 Invalid character is password string
1 Bad/Invalid unit request
0 Succesful execution
B. Disk Internals
DOS can support several types of disk. Each disk contains information on its
capabilities, which is stored on a specific area of the disk. In addition to
this information, the disk must contain information necessary to the managing
of the files and disk space, which is also stored in a reserved disk area.
A DOS-compatible disk consists of 3 reserved areas and a user file area. The
reserved areas are the Boot Sector, which contains a table of disk parameters
used by DOS to manage disk space, and a bootstrap code to start the operating
system; the File Allocation Table (FAT), containing data on file-space usage;
and the Root Directory, containing size, location, date, and time information
about the files on the disk.
The surface of a (physical) disk is laid out as a series of concentric rings,
called tracks, which are divided radially into sectors. When storing a file,
a cluster is the basic unit of disk allocation used by DOS, and consists of a
group of sectors, whose number varies with the disk type; the file is divided
among as many sectors as are required to hold it. Whether just one or all of
the sectors of a cluster are used, the cluster is marked as in use.
In the FAT there is an entry for each cluster on the disk, containing a value
that indicates the status of the cluster: reserved for DOS, free, in-use, bad
and end of cluster chain. DOS stores cluster information as a cluster chain,
in which each cluster points to the next cluster in use. Because the first 2
entries of the FAT are reserved, the first cluster of available disk space in
the user file area is cluster number 2.
The length of a FAT entry is either 12 or 16 bits, and it depends on the size
of the disk in sectors and the cluster size; a 12-bit FAT entry is used until
cluster values cannot be stored as a 12-bit quantity, which is when there are
more than 4,079 clusters. The minimum disk size requiring 16-bit FAT entries
can be calculated from:
(4079 clusters x [sectors/cluster] x [bytes/sector]) = Disk size
Improper FAT length entry due to modification of the above variables produces
input/output disk errors; switch /DX monitors the variables to verify whether
disk contents can be preserved or not.
C. RAM-Disk Identification & DOS Version
DOS assigns the first available drive letter to a RAM-disk within the default
range A to E or, for DOS version 3 or higher, the range A to Z if the command
<LASTDRIVE=Z> is included in CONFIG.SYS. Such a letter is shown by XDISK.SYS.
xDISK drives can be identified by the volume label and the OEM identification
in the boot sector, which are determined by the program version. If installed
in a machine using an 80286 or a higher CPU, the disk date of creation is the
current date in the CMOS chip; for an 8088/8086 CPU, such date is that of the
assembly of XDISK.SYS. Similarly, the time of creation is the version number
of the program when the driver is installed (e.g., 3:60 for version 3.60) for
a machine using an 8088/8086 CPU, or the current time in the CMOS chip for an
80286 CPU. Afterward, the current time and date maintained by DOS are always
used for the time/date creation stamp whenever the disk is reformatted.
D. Self-Installation in Upper Memory
The driver can install itself in the upper memory area (UMA), that is, at
RAM addresses between 640 KB and 1024 KB of memory, via switch /H (or its
subfunctions /Hn, /H[n]X, and /H[n]D). Program releases prior to version
3.10 lack this feature.
The allocation of UMA blocks (UMBs) is arbitrated by an XMS manager (XMM)
version 2.0 or higher; the XMM must be installed prior to the UMB-loading
of the resident. Allocation also requires the remapping of UMA addresses
by a UMB provider, when such a task is not implemented by the XMM itself.
XMMs require MS-compatible DOS version 3.0 or later.
HIMEM.SYS is the XMM distributed with MS-DOS 5+. Installation of this XMM
and of a UMB provider (e.g. a 386-specific memory manager such as EMM386.
EXE) allows DOS 5+ to control UMB allocation, provided that DOS access to
the UMA is enabled. Other 386/486-specific memory managers, e.g. QEMM386
(Quarterdeck) or 386MAX (Qualitas), are able to provide UMB remapping and
XMS support directly.
Switch /Hn, where A000 ≤ n ≤ FFFF (hexadecimal), allows the specification
of a minimum upper-memory limit for the UMB to avoid UMA regions having a
very slow access time (or to preserve regions with a fast access time for
other utilities that require faster times, such as a disk cache or screen
accelerator), or to avoid fragmentation of the UMA when UMB allocation is
not controlled by DOS 5+, but by the XMM itself. Such a fragmentation may
occur when the XMM allocates blocks on a first-fit basis, i.e., the first
available UMB having the lowest UMA address is allocated, irrespective of
whether or not a (smaller) block matching the requested size is available
at a higher UMA address. Unless the size of the available UMBs increases
with increasing memory address, first-fit allocation of a small UMB could
lead to the breaking of a large UMB into two smaller ones, thus hampering
the installation of larger residents in the UMA.
When DOS controls the UMB allocation, the program enforces the allocation
of the resident block on a best-fit basis when <n> is not specified, that
is, all available blocks are searched (by DOS), and the one matching most
closely the size requested is allocated.
When DOS controls UMB allocation and <n> is specified, UMBs are allocated
on a first-fit basis. While this may contribute to UMA fragmentation, it
allows for the checking of a minimum memory limit in those cases in which
the selection or avoidance of a specific UMA region is more important.
Thus, compared to the UMB loading provided by the command 'DEVICEHIGH' of
MS-DOS 5+, the command 'HIDEVICE' of DR-DOS 6.00, or the similar services
provided by some 386/486-specific memory managers, selfloading into a UMB
has some advantages, including (1) it requires only an initial free block
of upper memory of the size of the resident code only (as opposed to that
of the entire program), (2) it permits more user control of the selection
of the upper-memory block, and (3) it can help reduce UMA fragmentation.
Due to the manner in which 'DEVICEHIGH' changes the UMA allocation chain,
do not use this command in any line preceeding that which installs xDISK,
if the UMB selfload switch /LH has been specified (see above).
Of course, the resident can also be installed in the UMA via a 386-memory
manager or via UMB-linked MS-DOS 5+, provided that there is enough memory
for the actual size of the entire program, and any additional memory that
may be needed by the loading utility.
The driver XDISK.SYS is an uncompressed file, while the interface utility
XDISK.EXE is a compressed file (that self-expands by a factor of 2 during
execution).
Note -------------------------------------------------------------------
The address and size of available UMBs can be obtained via MEM.EXE,
when DOS controls UMB allocation, or via the memory manager itself,
when this allocation is controlled by 386-specific memory managers.
In either case, such data can also be obtained with UMAX.EXE, a UMA
mapping utility that is distributed by the author. If memory access
time is a critical element in the selection of the UMBs, a detailed
timing access map is provided by TIMEM.EXE, a utility which is also
distributed by the author.
-------------------------------------------------------------------
E. xDISK Communication Interface
Starting with version 3.32, xDISK implements an interface via interrupt 2Fh,
which allows communication with the driver. A description of this interface
is provided below in case you want your programs to detect whether the xDISK
driver is loaded in memory or if a given unit is an xDISK drive:
Registers at call:
AH = 0DDh Interrupt 2Fh subfunction used by xDISK
AL = 0/1-26 Drive unit (1-26) or installation check (0)
BX = 7844h API signature ("xD")
CX = 7844h ("IS")
DX = 7844h ("K?")
ES:DI -> Pointer to 25-byte minimum length data buffer
Return registers if successful:
CF = ? Undetermined
AX = 0DDFFh
BX = 87BBh One's complement of signature (NOT "xD")
CX = ? Register not preserved
DX = B4C0h One's complement of signature (NOT "K?")
ES:[DI+0] = offset of driver signature for unit in [AL]
ES:[DI+2] = segment of (paragraph-aligned) driver address
ES:[DI+4] = start of data list (19 bytes)
To verify if a given drive is an xDISK unit, place the unit code (1=A, 2=B,
3=C, etc) in AL; to verify if any xDISK driver is installed, place 0 in AL.
At installation time, xDISK checks whether the INT-2F vector is a null one;
if so, it replaces this vector for one that points to an IRET instruction.
If the xDISK driver is installed, the INT-2F call returns with the contents
of AL = FFh, and the one's complement of the interface signature components
in BX and DX. The contents of CX are not preserved. The paragraph-aligned
(base) segment of the driver is returned in the word starting at ES:[DI+2].
If further verification is required, the far address returned in the double
word starting at ES:[DI] points to the offset of the following string:
DB "xDISK unit: " ; 12-byte ID string
DB ? ; drive unit letter (A-Z)
DB 0 ; end of ASCIIz string
The status of the following static driver flags is returned starting at ES:
[DI+4] through [DI+23]:
Offset 04h 1=DOS linked, 0=DOS unlinked disk
Offset 05h 1=write protected, 0=not protected
Offset 06h 1=root directory full, 0=not full
Offset 07h 1=uncompacted free space, 0=compacted
Offset 08h 1=resized, 80h=resizable, 0=not resizable
Offset 09h 1=inelastic resizable disk, 0=elastic disk
Offset 0Ah ? (reserved)
Offset 0Bh ? (reserved)
Offset 0Ch 1=collapsed disk, 0=not collapsed
Offset 0Dh 1=using all EMS, 0=using some EMS
Offset 0Eh 1=password enabled, 0=password disabled
Offset 0Fh 1=password audio feedback, 0=no feedback
Offset 10h 1=password video feedback, 0=no feedback
Offset 11h 1=confirm changes first, 0=no confirm
Offset 12h 1=silent display, 0=verbose display
Offset 13h 1=click speaker on disk access, 0=no click
Offset 14h 1=flash symbol on disk access, 0=no flash
Offset 15h 0=12 bit, FFh=16 bit: length of FAT entries
Offset 16h ? (reserved)
6. COPYRIGHT & LICENSE INFORMATION
----------------------------------
This documentation, programs, and other files distributed in this software
package (the "Software") are the copyrighted property of FM de Monasterio
(the "Author"), who provides the Software and licenses its use. All rights
are reserved.
The Software is not sold. A license fee is required to use this Software.
This license does not transfer to you either the ownership of or the title
to the Software, which remain the property of the Author. A form required
to license the Software is provided in the enclosed file XDISK.REG
SINGLE USER LICENSE. Grants you use of this Software in a single computer
at a time; the Software may be transferred to another computer, as long as
it is used only in 1 computer at any time; under the license, the Software
may NOT be installed on a network server.
SITE/15-PCs LICENSE. Grants you use of this Software in a sigle site or a
set of sites, as long as the Software is not used in more than 15 machines
at a time, and that such machines are located exclusively within the site.
Licenses for more machines are available at discounted prices.
SOFTWARE BUNDLING LICENSE. Please write to the Author.
REFUNDS POLICY. If a problem notified within ninety (90) days of shipping
of the registered copy cannot be solved, the registration fee (but not the
shipping costs) will be refunded upon receiving a written request with the
original diskette(s) enclosed.
UPGRADE POLICY. Program upgrades are limited to licensed users. Upgrades
within the same major version (e.g. release 4.00 through 4.99) are free of
charge when a self-addressed, stamped, 5.25" diskette mailer with a 360-KB
diskette is included with the request. Other upgrades are charged half the
(single-user/site) registration fee. See the enclosed file XDISK.UPG.
U.S. GOVERNMENT INFORMATION
The Software is Commercial Computer Software under the Federal Acquisition
Regulations of the U.S. government and the Agency Supplements to them. The
Software is provided to the Federal Government and its agencies only under
the Restricted Rights Provisions of the above noted regulations applicable
to commercial software developed at private expense, and not in the public
domain. The use, duplication, or disclosure of the Software by the Federal
Government or its agencies is subject to the restrictions set forth in the
subdivision (c.1.ii) of the Rights in Technical Data and Computer Software
clause at DFARS 252.227-7013 (October 1988) and FAR 52.227-19 (June 1987).
DISTRIBUTION
You may distribute the Software, but you are specifically prohibited from:
- Charging fees or asking donations in exchange of or payment
for copies of this Software.
- Distributing this Software with commercial products without
the written, express permission in advance from the author.
- Distributing this Software via a for-profit organization or
group, either alone or with other software.
- Changing any of the contents of this Software including the
copyright notice and license information.
You may not disassemble or otherwise reverse engineer the Software. Other
uses of the Software are prohibited without a written authorization signed
by the Author.
Latest program releases may be found at the Information Exchange BBS (703)
836-0748, as a compressed archive file.
WARRANTY DISCLAIMER FOR UNREGISTERED COPIES
The information contained in the documentation for the Software is subject
to change without notice.
The Author cannot and does not warrant that any functions contained in the
Software will meet your requirements, or that its operations will be error
free. The entire risk as to the Software performance or quality, or both,
is solely with the user and not the Author. You assume responsibility for
the selection of the Software to achieve your intended results and for the
installation, use, and results obtained from the Software.
The Author makes no warranty, either implied or expressed, including with-
out limitation any warranty with respect to this Software documented here,
its quality, performance, or fitness for a particular purpose. In no event
shall the Author be liable to you for damages, whether direct or indirect,
incidental, special, or consequential arising out the use of or any defect
in the Software, even if the Author has been advised of the possibility of
such damages, or for any claim by any other party.
All other warranties of any kind, either express or implied, including but
not limited to the implied warranties of merchantability and fitness for a
particular purpose, are expressly excluded.
By using the Software, you acknowledge (1) to have read and understood all
parts of this document and (2) to have agreed with and accepted all of its
terms and provisions without any reservation.
For information on the terms of the Limited Warranty for licensed Software
copies or any other information on this program, please write to:
FM de Monasterio
P.O. Box 219
Cabin John, MD 20818-0219
USA
┌─────────────────────────────────────────────────────────────┐
│ Trademarked names are the property of the respective owners │
└─────────────────────────────────────────────────────────────┘
[END]